﻿using Microsoft.CodeAnalysis;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Admin.NET.Application.Entity;

/// <summary>
/// 反馈信息实体类
/// </summary>
[SugarTable("base_feedback", "反馈信息")]
public class FeedbackEntity : EntityBase {

    /// <summary>
    /// 反馈类型 (1=功能建议 2=BUG报告 3=投诉 4=其他)
    /// </summary>
    [SugarColumn(IsNullable = true)]
    public int? FeedbackType { get; set; } = 1;

    /// <summary>
    /// 反馈标题
    /// </summary>
    [SugarColumn(Length = 100, IsNullable = true)]
    public string Title { get; set; }

    /// <summary>
    /// 反馈内容
    /// </summary>
    [SugarColumn(Length = 500, IsNullable = true)]
    public string Content { get; set; }

    /// <summary>
    /// 联系方式
    /// </summary>
    [SugarColumn(Length = 50, IsNullable = true)]
    public string Contact { get; set; }

    /// <summary>
    /// 客户端IP
    /// </summary>
    [SugarColumn(Length = 100, IsNullable = true)]
    public string ClientIp { get; set; }

    /// <summary>
    /// 联系人
    /// </summary>
    [SugarColumn(Length = 50, IsNullable = true)]
    public string Name { get; set; }

    /// <summary>
    /// 图片附件(多个图片URL用逗号分隔)
    /// </summary>
    [SugarColumn(Length = 500, IsNullable = true)]
    public string Images { get; set; }

    /// <summary>
    /// 处理状态 (100=未处理 200=处理中 300=已处理 400=已关闭)
    /// </summary>
    [SugarColumn(IsNullable = true)]
    public int? Status { get; set; } = 100;

    /// <summary>
    /// 处理人ID
    /// </summary>
    [SugarColumn(IsNullable = true)]
    public long? HandlerId { get; set; }

    /// <summary>
    /// 处理结果
    /// </summary>
    [SugarColumn(Length = 500, IsNullable = true)]
    public string HandleResult { get; set; }


    /// <summary>
    /// 处理时间
    /// </summary>
    [SugarColumn(IsNullable = true)]
    public DateTime? HandleTime { get; set; }

    /// <summary>
    /// 设备信息
    /// </summary>
    [SugarColumn(Length = 200, IsNullable = true)]
    public string DeviceInfo { get; set; }
}
